replace_values <- function(
  ori_id = c(),
  ori_value = c(),
  rep_id = c(),
  rep_value = c()
){
  rep_id <- rep_id[is.na(rep_value) == F]
  rep_value <- rep_value[is.na(rep_value) == F]
  out_value <- ori_value
  for(i in 1:length(rep_id)){
    if(length(ori_id[ori_id == rep_id[i]]) >= 1){
      marks <- grep(pattern = rep_id[i], x = ori_id)
      out_value[marks] <- rep_value[i]
    }
  }
  return(out_value)
}

replace_values2 <- function(
    ori_value = c(),
    change_cu = c(),
    rep_value = c()
    ){
  for(i in 1:length(change_cu)){
    ori_value[ori_value == change_cu[i]] <- rep_value[i]
  }
  return(ori_value)
}

replace_values2df <- function(
    data = data.frame(),
    change_cu = c(),
    rep_value = c()
    ){
  for(i in 1:dim(data)[2]){
    data[,i] <- replace_values2(
      ori_value = data[,i], 
      change_cu = change_cu, 
      rep_value = rep_value
      )
  }
  return(data)
}


#### Test Area ####
# 
# ori_id = c("a01", "a02", "a03", "a04")
# ori_value = c("test1", "test2", "test3", "test4")
# 
# rep_id = c("a01", "a03", "a04")
# rep_value = c("rep01", "rep03", NA)
# 
# replace_values(ori_id = ori_id, ori_value = ori_value, rep_id = rep_id, rep_value = rep_value)

